home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / fpu881 / src6.zoo / cabs.s < prev    next >
Text File  |  1991-09-24  |  1KB  |  62 lines

  1. # pml compatible lib for the atari sfp004
  2. #
  3. # Michael Ritzert, Oktober 1990
  4. # ritzert@dfg.dbp.de
  5. #
  6. # FUNCTION:    CABS(COMPLEX X)
  7. #
  8. # base =    0xfffa50
  9. #      the fpu addresses are taken relativ to "base":
  10. #
  11. # waiting loop ...
  12. #
  13. # wait:
  14. # ww:    cmpiw    #0x8900,a1@(resp)
  15. #     beq    ww
  16. # is coded directly by
  17. #    .long    0x0c688900, 0xfff067f8
  18. # and
  19. # www:    tst.b    a1@(resp)
  20. #    bmi.b    www
  21. # is coded by
  22. #    word    0x4a68,0xfff0,0x6bfa        | test
  23.  
  24. comm =     -6
  25. resp =    -16
  26. zahl =      0
  27.  
  28. .globl _cabs
  29. .text
  30. .even
  31. _cabs:
  32.     lea    0xfffa50,a0
  33.  
  34.     movew    #0x5400,a0@(comm)            | load fp0
  35.     .long    0x0c688900, 0xfff067f8
  36.     movel    a7@(4),a0@                | load arg_hi
  37.     movel    a7@(8),a0@                | load arg_low
  38.  
  39.     movew    #0x5480,a0@(comm)            | load fp1
  40.     .long    0x0c688900, 0xfff067f8
  41.     movel    a7@(12),a0@                | load arg_hi
  42.     movel    a7@(16),a0@                | load arg_low
  43.  
  44.     movew    #0x0023,a0@(comm)
  45.     .word    0x4a68,0xfff0,0x6bfa        | test
  46.  
  47.     movew    #0x04a3,a0@(comm)
  48.     .word    0x4a68,0xfff0,0x6bfa        | test
  49.  
  50.     movew    #0x0422,a0@(comm)            | fp0 = fp0 + fp1    
  51.     .word    0x4a68,0xfff0,0x6bfa        | test
  52.  
  53.     movew    #0x0004,a0@(comm)            | sqrt(fp0)
  54.     .word    0x4a68,0xfff0,0x6bfa        | test
  55.  
  56.     movew    #0x7400,a0@(comm)            | result to d0/d1
  57.     .long    0x0c688900, 0xfff067f8
  58.     movel    a0@(zahl),d0
  59.     movel    a0@(zahl),d1
  60.     rts
  61.     
  62.